<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
		//小驼峰命名
			var shopName;
		//大驼峰命名    首字母大写
			var max = Infinity;
			var min = -Infinity;
		//严格模式可以纠错。
//			NaN Not a Number 不是一个数字。

		var num = '123';
//		隐性转换
		var answer = isNaN(num);
		console.log(answer);
		
//    	NaN与NaN比较，结果是false

// 		infinity 和infinity 结果是true;
		
		 num = 0x0f;
// 字符串与布尔值之间的隐性转换。
// 只要字符串内容不为空， 都是为true;
// undefined null 0 -0 NaN ''空字符串     布尔值都为false。
		num = 0;
		if(num){
			console.log('嗯，是真的');
		}else{
			console.log('炸了');
		}
	
	// null 和 undefined 的区别
	/*
	 * null 是什么都没有 即没有你分配内存 是个空对象
	 * undefined 是已经分配好固定的内存， 但是没有定义是什么类型的数据
	 */
	var now = 1;//Number类型的变量
	var str = '现在是' + num + '点';//string类型的变量。
	
	// + 前后是字符串 和数字的时候，这个数值类型的变量会转化为字符串类型去进行拼接合并
	// + 两者都是数值， 则+进行数值运算 
	
	
	
	
	
	//复杂类型
	//object对象
	var obj = new Object();
	obj.name = 'BGG';
	console.log(obj);
	
	var obj = {
		'name':'bgg',//name 为属性名，bgg 为属性值
		'age':18
	
	}
	console.log(obj);
	
	// var obj = {}  等同于 new object();
	
	
	
	
	
	//数组Array
	//有序的属性值集合(对象是无序的属性集合)
	
	var arr = [1,2,3];
	
	console.log(arr);
	
	var fun = function (name) {
		console.log('已经走进了fun1');
	}
	//函数 (参数)

	function fun1(name) {
		console.log(name + '已经走进了fun1');
		fun();
	}
	// 好处: 代码块可以反复使用，
	fun1(obj.name);
	
	
	
		</script>
		
		
		<!--
			
			简单类型 和 复杂类型
			
			1. 结构比较复杂
			2. 赋值的时候需要找到对应的属性名
			
			
		-->
	</body>
</html>
